package cn.caiwen.复习;

import java.util.ArrayList;
import java.util.Scanner;

public class Demo07_集合循环及输入操作联合示例 {
    public static void main(String[] args) {
        /*
            案例要求：
                    1. 现在要实现一个功能，支持在控制台将班级的每个学生的姓名录入到程序中
                    2. 可以通过程序直接检索某个学生是否在这个班？
                   扩展：
                    3. 支持录入学生的信息，除了姓名之外，还可以录入学生的年龄和性别
                    4. 支持根据学生的姓名检索、年龄区间检索和性别检索

         */
//        1. 现在要实现一个功能，支持在控制台将班级的每个学生的姓名录入到程序中
        /*
            思路分析：（思路：先梳理出这个功能中，可能会用到哪几个技术？然后再来思考这些技术之间彼串起来？）
                   1. 如何实现录入？ Scanner工具
                   2. 如何保存到程序中？ 集合容器
                   3. 如何将班级里的第个学生都录入进去？  循环：for / while(true) 因为不知道要录多少学生，所以用 while

                   小技巧：当程序中，需要用到循环时，在实现代码时，一定要先将单次循环的操作代码实现，最后再将循环包住要循环的代码块
         */
        Scanner sc = new Scanner(System.in);//创建一个可以在控制台录入操作的工具
        ArrayList list = new ArrayList();//这个集合用来装 name

        ArrayList list2 = new ArrayList();//这个集合装 age

        ArrayList list3 = new ArrayList();//这个集合装  sex

        while (true) {
            System.out.println("请录入学生的姓名（如果输入n，则结束）：");
            String name = sc.next();//这个指令就是允许在控制台进行输入操作
            if (name.equals("n")) {//如果输入的是n就结束循环
                break;
            }
            System.out.println("请录入学生的年龄：");
            int age = sc.nextInt();//这个指令就是允许在控制台进行输入操作

            System.out.println("请录入学生的性别：");
            String sex = sc.next();//这个指令就是允许在控制台进行输入操作



            list.add(name);//保存到容器中
            list2.add(age);
            list3.add(sex);
        }


        //下面这个代码是用来测试的，判断数据是不是直接加进去了
        System.out.println("循环遍历集合容器中的数据：");
        for (int i = 0; i < list.size(); i++) {
            System.out.println("容器中学生的信息是：姓名："+list.get(i)+"，性别是："+list3.get(i)+",年龄是："+list2.get(i));
        }


    }
}
